/*
    日志消息类：定义日志消息类
    1. 日志输出时间
    2. 日志器名称
    3. 线程ID
    4. 源文件名
    5. 行号
    6. 日志等级
    6. 消息主体
*/

#pragma once 

#include "util.hpp"
#include "level.hpp"
#include <iostream>
#include <string>
#include <thread>

namespace easylog
{
    struct LogMsg
    {
        time_t 			_ctime;//日志输出时间
        std::string 	_logger;//日志器名称
        std::thread::id _tid;//线程ID
        std::string 	_file;//源码文件名
        size_t 			_line;//行号
        LogLevel::value _level;//日志等级
        std::string 	_payload;//消息主体

        //构造函数
        LogMsg(const std::string& logger,
               const std::string& file,
               size_t line,
               LogLevel::value level,
               const std::string& payload)
               :_ctime(util::Date::getTime()),
               _logger(logger),
               _tid(std::this_thread::get_id()),
               _file(file),
               _line(line),
               _level(level),
               _payload(payload)
        {}
    };
}